package com.vcc.data.entity;


import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import com.vcc.data.base.entity.BaseEntity;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@EqualsAndHashCode(callSuper = true)
@Data
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table(value = "vcc_card_order")
public class CardOrder extends BaseEntity implements Serializable {

    @Column(comment = "用户ID", value = "user_id")
    private Long userId;

    /**
     * 根据操作来源，管理端 查管理员  客户端查客户
     */
    @Column(comment = "操作员ID", value = "operator_user_id")
    private Long operatorUserId;

    @Column(comment = "卡号", value = "card_number")
    private String cardNumber;

    @Column(comment = "卡号ID", value = "card_number_id")
    private Long cardNumberId;

    @Column(comment = "卡类型ID", value = "card_type_id")
    private Long cardTypeId;

    @Column(comment = "渠道", value = "channel")
    private String channel;

    @Column(comment = "订单号", value = "order_no")
    private String orderNo;

    @Column(comment = "订单状态 SUCCESS|FAIL|PENDING", value = "order_status")
    private String orderStatus;

    @Column(comment = "订单金额", value = "order_amount")
    private BigDecimal orderAmount;

    @Column(comment = "订单币种", value = "order_currency")
    private String orderCurrency;

    @Column(comment = "订单类型 OPEN|RECHARGE|WITHDRAW|BLOCK|UNBLOCK|CLOSE", value = "order_type")
    private String orderType;

    @Column(comment = "订单时间", value = "request_time")
    private Date requestTime;

    @Column(comment = "完成时间", value = "complete_time")
    private Date completeTime;

    @Column(comment = "订单备注", value = "order_remark")
    private String orderRemark;

    @Column(comment = "订单来源", value = "order_source")
    private String orderSource;

    @Column(comment = "共享账户id", value = "share_account_id")
    private Long shareAccountId;

    @Column(comment = "用户账号", value = "account", ignore = true)
    private String account;

    @Column(comment = "代理账号", value = "dealer_account", ignore = true)
    private String dealerAccount;

    @Column(comment = "操作账号", value = "operator_account", ignore = true)
    private String operatorAccount;

}
